package com.foundryx.shared.core.utils;

import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;

import java.util.Arrays;
import java.util.Collection;
import java.util.Map;

/**
 * @className: CheckUtil
 * @author: ocxz1
 * @date: 2025/6/20 下午9:15
 * @Version: 1.0
 * @description: fx-share-resources
 */
public class CheckUtil {
    /**
     * 断言字符串不为空
     *
     * @param str     断言字符串
     */
    public static boolean notBlank(String str) {
        return StrUtil.isBlank(str);
    }

    /**
     * 断言对象不为空
     *
     * @param obj     断言对象
     */
    public static boolean notNull(Object obj) {
        return ObjectUtil.isNull( obj);
    }

    /**
     * 断言集合中是否有null元素
     * @return
     */
    public static boolean objHasNull(Object... objects) {
        return Arrays.stream(objects).anyMatch(ObjectUtil::isNull);
    }

    /**
     * 断言集合是否全部为null
     * @param objects 断言对象
     * @return
     */
    public static boolean objAllNull(Object... objects) {
        return Arrays.stream(objects).allMatch(ObjectUtil::isNull);
    }

    /**
     * 断言集合是否不为空
     *
     * @param collection 断言对象
     */
    public static boolean isNotEmpty(Collection<?> collection) {
        return CollectionUtil.isNotEmpty(collection);
    }

    /**
     * 断言map是否为空
     *
     * @param map     map
     */
    public static boolean isNotEmpty(Map<?, ?> map) {
        return CollectionUtil.isNotEmpty(map);
    }
}
